package example1;

import java.util.Arrays;

// 观测线程状态
public class TestState {

    public static void main(String[] args) {

        // 采用lambda表达式定义线程体
        Thread thread=new Thread(()->{
            for (int i = 0; i < 5; i++) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
            System.out.println("////");
        });

        // 观察状态
        Thread.State state=thread.getState();
        System.out.println(state); // 还没调用start，状态为new

        thread.start();
        state=thread.getState();
        System.out.println(state); // 线程启动，状态为Runnable

        while(state!=Thread.State.TERMINATED){ // 只要线程不终止，就一直输出状态
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            state=thread.getState();  // 更新线程状态
            System.out.println(state); // 输出状态
        }
    }
}
